home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1997-10-26 | 5.6 KB | 172 lines |
- (*----------------------------------------------------------------------*
- * *
- * MAGIC Modula's All purpose GEM Interface Cadre *
- * ÿ ÿ ÿ ÿ ÿ *
- *----------------------------------------------------------------------*
- * Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
- *----------------------------------------------------------------------*
- * Dieses Modul ist urheberrechtlich geschtzt. *
- * *
- * Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
- * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
- * ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
- * Genehmigung des Autors! *
- * *
- * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
- * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
- * besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
- * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
- * behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
- * von Grnden zu widerrufen. *
- *----------------------------------------------------------------------*)
-
- IMPLEMENTATION MODULE MagicConvert;
-
- (*----------------------------------------------------------------------*
- * Int. Vers | Datum | Name | nderung *
- *-----------+----------+------+----------------------------------------*
- * 3.00 | 18.01.92 | Hp | *
- *-----------+----------+------+----------------------------------------*)
-
-
-
- (* IMPLEMENTATION FR >>> Megamax-Modula-2 <<< *)
- (* *)
- (*$R- Range-Checks *)
- (*$S- Stack-Check *)
- (* *)
- (*----------------------------------------------*)
-
-
-
-
-
-
- FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
- Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
- Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
- sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET,
- CastToChar, CastToByte, CastToByteset, CastToInt,
- CastToCard, CastToBitset, CastToWord, CastToLInt,
- CastToLCard, CastToLBitset, CastToLWord, CastToAddr,
- TosVersion, Accessory, Basepage, SysHeader, TosDate;
-
-
-
-
-
-
-
- IMPORT Convert, StrConv, Strings;
-
- VAR pos: sCARDINAL;
- bool: BOOLEAN;
-
- PROCEDURE NumToStr (n: lCARDINAL; len, b: sCARDINAL; neg: BOOLEAN; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvLNum (n, b, len, ' ', s);
- END NumToStr;
-
- PROCEDURE StrToNum (REF s: ARRAY OF CHAR; base: sCARDINAL; neg: BOOLEAN; max: lCARDINAL): lCARDINAL;
- BEGIN
- pos:= 0;
- IF neg THEN RETURN StrConv.StrToLInt (s, pos, bool);
- ELSE RETURN StrConv.StrToLNum (s, base, pos, bool);
- END;
- END StrToNum;
-
- PROCEDURE RealToStr (r: REAL; n: sCARDINAL; VAR s: ARRAY OF CHAR);
- VAR lr: LONGREAL;
- BEGIN
- lr:= VAL (LONGREAL, r);
- Convert.ConvFix (lr, n, n DIV 2, s);
- END RealToStr;
-
- PROCEDURE StrToReal (REF s: ARRAY OF CHAR): REAL;
- VAR lr: LONGREAL;
- BEGIN
- pos:= 0;
- lr:= StrConv.StrToReal (s, pos, bool);
- RETURN VAL (REAL, lr);
- END StrToReal;
-
- PROCEDURE LRealToStr (r: LONGREAL; n: CARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvFix (r, n, n DIV 2, s);
- END LRealToStr;
-
- PROCEDURE StrToLReal (REF s: ARRAY OF CHAR): LONGREAL;
- BEGIN
- RETURN StrConv.StrToReal (s, pos, bool);
- END StrToLReal;
-
- PROCEDURE StrToInt (REF s: ARRAY OF CHAR): sINTEGER;
- BEGIN
- pos:= 0; RETURN SHORT (StrConv.StrToLInt (s, pos, bool));
- END StrToInt;
-
- PROCEDURE StrToCard (REF s: ARRAY OF CHAR): sCARDINAL;
- BEGIN
- pos:= 0; RETURN StrConv.StrToNum (s, 10, pos, bool);
- END StrToCard;
-
- PROCEDURE StrToLInt (REF s: ARRAY OF CHAR): lINTEGER;
- BEGIN
- pos:= 0; RETURN StrConv.StrToLInt (s, pos, bool);
- END StrToLInt;
-
- PROCEDURE StrToLCard (REF s: ARRAY OF CHAR): lCARDINAL;
- BEGIN
- pos:= 0; RETURN StrConv.StrToLNum (s, 10, pos, bool);
- END StrToLCard;
-
- PROCEDURE HexToCard (REF s: ARRAY OF CHAR): sCARDINAL;
- BEGIN
- pos:= 0; RETURN StrConv.StrToNum (s, 16, pos, bool);
- END HexToCard;
-
- PROCEDURE IntToStr (i: sINTEGER; n: sCARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvInt (i, n, s);
- END IntToStr;
-
- PROCEDURE CardToStr (c: sCARDINAL; n: sCARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvLNum (c, 10, n, ' ', s);
- END CardToStr;
-
- PROCEDURE CardToHexStr (c: sCARDINAL; n: sCARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvLNum (c, 16, n, ' ', s);
- END CardToHexStr;
-
- PROCEDURE LIntToStr (l: lINTEGER; n: sCARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvInt (l, n, s);
- END LIntToStr;
-
- PROCEDURE LCardToStr (c: LONGCARD; n: CARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvLNum (c, 10, n, ' ', s);
- END LCardToStr;
-
- PROCEDURE FixRealToStr (w: REAL; n, l: sCARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvFix (LONG(w), n, l, s);
- END FixRealToStr;
-
- PROCEDURE FixLRealToStr (w: LONGREAL; n, l: sCARDINAL; VAR s: ARRAY OF CHAR);
- BEGIN
- Convert.ConvFix (w, n, l, s);
- END FixLRealToStr;
-
-
-
-
-
-
-
-
- END MagicConvert.
-
-